package com.ly.heart.service;

import java.util.List;

import com.baomidou.mybatisplus.extension.service.IService;
import com.ly.common.core.domain.AjaxResult;
import com.ly.heart.domain.KingFinanceReceiptEntity;
import com.ly.heart.domain.dto.KingFinanceReceiptDto;
import com.ly.heart.domain.vo.KingFinanceReceiptVo;

/**
 * 财务模块-收款单,推金蝶Service接口
 *
 * @author wutao
 * @date 2024-06-19
 */
public interface IKingFinanceReceiptService extends IService<KingFinanceReceiptEntity> {

    /**
     * 查询财务模块-收款单,推金蝶
     *
     * @param id 财务模块-收款单,推金蝶ID
     * @return 财务模块-收款单,推金蝶
     */
    KingFinanceReceiptVo selectKingFinanceReceiptEntityById ( String id );

    /**
     * 查询财务模块-收款单,推金蝶列表
     *
     * @param kingFinanceReceiptEntity 财务模块-收款单,推金蝶
     * @return 财务模块-收款单,推金蝶集合
     */
    List<KingFinanceReceiptEntity> selectKingFinanceReceiptEntityList ( KingFinanceReceiptEntity kingFinanceReceiptEntity );

    Integer selectKingFinanceReceiptEntityCount ( KingFinanceReceiptEntity kingFinanceReceiptEntity );

    /**
     * 新增财务模块-收款单,推金蝶
     *
     * @param kingFinanceReceiptDto 财务模块-收款单,推金蝶
     * @return 结果
     */
    AjaxResult draft ( KingFinanceReceiptDto kingFinanceReceiptDto );

    /**
     * 新增财务模块-收款单,推金蝶
     *
     * @param kingFinanceReceiptEntity 财务模块-收款单,推金蝶
     * @return 结果
     */
    AjaxResult submit ( KingFinanceReceiptEntity kingFinanceReceiptEntity );

    /**
     * 通过Id查询关联对象信息
     *
     * @param id
     * @return
     */
    KingFinanceReceiptEntity querySingleById ( String id );

    /**
     * 审批付款后的业务处理
     *
     * @param id
     * @return
     */
    AjaxResult approve ( String id );

    /**
     * 修改财务模块-收款单,推金蝶
     *
     * @param kingFinanceReceiptDto 财务模块-收款单,推金蝶
     * @return 结果
     */
    AjaxResult updateKingFinanceReceiptEntity ( KingFinanceReceiptDto kingFinanceReceiptDto );

    /**
     * 批量删除财务模块-收款单,推金蝶
     *
     * @param ids 需要删除的财务模块-收款单,推金蝶ID
     * @return 结果
     */
    AjaxResult deleteKingFinanceReceiptEntityByIds ( String[] ids );

    AjaxResult queryList ( KingFinanceReceiptEntity kingFinanceReceiptEntity );
}
